package com.workflow.sdk.core;

/**
 * Workflow executor
 *
 * @description: 执行工作流接口。 所有执行流程都是实现这个接口
 * @author: cyj
 * @date 2022 -06-06 09:47:01
 *
 *
 */
public interface WorkflowExecutor<T> {

    /**
     * 流程标号-节点ID
     */
    String TAG = "%s-%s";

    /**
     * Execute string 实现这个方法，如果执行节点是个choose节点，需要返回下个执行node。如果是结束可以直接跳转到end节点，或者返回 WORKFLOW_END
     *
     * @param params params
     * @param remark remark
     * @return the string
     */
    WorkflowExecutorResult execute(T params, String remark);

    /**
     * Gets tag 返回流程标识，标准流程id-节点ID
     *
     * @return the tag
     */
    String getTag();

}
